package com.lanyun.aicorrectassistant.domain.assignmentTemplates;

import com.lanyun.aicorrectassistant.basic.bean.PageResult;
import com.lanyun.aicorrectassistant.controller.admin.assignmentTemplates.vo.*;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import reactor.core.publisher.Flux;

import java.nio.file.Path;

/**
 * 作业模板表领域服务接口
 *
 * @author makejava
 * @version 1.0
 * @date 2025-05-12 01:52:17
 */
public interface AssignmentTemplatesDomainService {

    /**
     * 分页查询
     *
     * @param requestPageVO 分页查询参数
     * @return 分页结果
     */
    PageResult<AssignmentTemplatesResponseVO> page(AssignmentTemplatesRequestPageVO requestPageVO);

    /**
     * 更新数据
     *
     * @param requestVO 更新参数
     * @return 是否成功
     */
    Boolean update(AssignmentTemplatesRequestVO requestVO);

    /**
     * 删除数据
     *
     * @param id 主键ID
     * @return 是否成功
     */
    Boolean delete(Long id);

    /**
     * 新增数据
     *
     * @param requestVO 新增参数
     * @return 是否成功
     */
    Boolean insert(AssignmentTemplatesRequestVO requestVO);

    /**
     * 根据主键获取详情
     *
     * @param id 主键ID
     * @return 详情数据
     */
    AssignmentTemplatesResponseVO get(Long id);

//    /**
//     * 生成AI思考过程
//     *
//     * @param assignmentTemplatesRequestVO
//     * @return
//     */
//    Flux<String> generateAIThinkingProcess(AssignmentTemplatesRequestVO assignmentTemplatesRequestVO) throws Exception;

    /**
     * 生成AI思考过程
     *
     * @param assignmentTemplatesRequestVO
     * @return
     */
    String generateAIThinkingProcess(AssignmentTemplatesRequestVO assignmentTemplatesRequestVO) throws Exception;
}
